Attracting User Attention to Advertisements

ABSTRACT

One or more videos are presented to a user. The videos include a plurality of hidden artifacts. The videos also include advertisements. The user looks for the hidden artifacts in the videos. Whenever the user finds the hidden artifacts in one of the videos, the user selects locations in the videos that correspond to the hidden artifacts. A computing device performs different actions depending on which ones of the hidden artifacts the user is able to find. For example, the computing device can provide different rewards to the user depending on which ones of the hidden artifacts the user is able to find.

BACKGROUND

Product placement is a technique where branded goods or services areadvertised in a context usually devoid of advertisements. For example,branded goods or services may be advertised in movies and televisionshows. A goal of such product placement is to make the users feel likethe advertised products or services are used by characters or at leastare pervasive parts of the environment inhabited by the characters.

Frequently, advertisements are placed in unobtrusive parts of movies andtelevision shows so as not to distract users from the primary action ofthe movies or television shows. For instance, a billboard advertising abrand of soft drinks may appear in the background of an outdoor scene ofa movie. However, because the advertisements are placed in unobtrusiveparts of movies and television shows, users frequently overlook theadvertisements.

SUMMARY

A computing device presents videos to a user. The videos include aplurality of hidden artifacts. The videos also include advertisements.The user looks for the hidden artifacts in the videos. When the userfinds a hidden artifact in one of the videos, the user selects alocation in the video that corresponds to the hidden artifact. Bylooking for the hidden artifacts, the user is more likely to notice theadvertisements. The computing device can perform different actions toreward the user based on which ones of the hidden artifacts the user isable to find.

This summary is provided to introduce a selection of concepts in asimplified form. These concepts are further described below in theDetailed Description. This summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor isthis summary intended as an aid in determining the scope of the claimedsubject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example media distribution system.

FIG. 2 illustrates example functional components of a server computingsystem.

FIG. 3 illustrates example functional components of a client device.

FIG. 4 illustrates an example video including an embedded advertisement.

FIG. 5 illustrates another portion of the video of FIG. 4 including ahidden artifact.

FIG. 6 illustrates an example operation of a distribution entity todistribute a video containing a hidden artifact designed to attract auser's attention to advertisements embedded in the video.

FIG. 7 illustrates an example operation of the client device to playback the video.

FIG. 8 illustrates an example operation of the server computing systemto distribute the video.

FIG. 9 illustrates an example operation of a video modification moduleto modify the video to contain the hidden artifact and theadvertisements.

FIG. 10 illustrates example physical components of an electroniccomputing device.

FIG. 11 illustrates an example block diagram illustrating an alternativeembodiment of the server computing system.

FIG. 12 is a flowchart of an example operation performed by thedistribution entity.

FIG. 13 is a flowchart of an example operation performed by the serverapplication.

FIG. 14 is a continuation of the example operation illustrated in FIG.13.

FIG. 15 is a screen illustration of an example playback interface.

DETAILED DESCRIPTION

As briefly described above, a distribution entity distributes mediacontaining at least one embedded advertisement and a hidden artifactdesigned to draw a user's attention to the advertisement. The techniquesof this disclosure are described with reference to the attached figures.It should be appreciated that the attached figures are provided forpurposes of explanation only and should not be understood asrepresenting a sole way of implementing the techniques of thisdisclosure. In the attached figures, stacked blocks represent one ormore similar, but not necessarily identical, items. In addition,ellipses between items represent one or more similar, by not necessarilyidentical, items. Items having similar references numbers of havingalphabetical suffixes (e.g., “A” through “N”) are not intended toindicate the existence of a specific number of items.

FIG. 1 illustrates an example media distribution system 100 thatdistributes media content. It should be appreciated that the mediadistribution system 100 is merely an example and that there may be manyother possible media distribution systems that distribute the media. Asillustrated in the example of FIG. 1, the media distribution system 100comprises a server computing system 102, client devices 104A through104N (collectively, “client devices 104”), users 106A through 106N(collectively, “users 106”), a network 108, a distribution entity 110,and advertisers 112A through 112N (collectively, “advertisers 112”).

The server computing system 102 and the client device 104 are electroniccomputing systems. Electronic computing systems comprise one or morephysical electronic computing devices. For instance, the servercomputing system 102 may comprise twenty separate physical electroniccomputing devices. Electronic computing devices include physicalmachines having physical electronic components. Electronic componentsare physical entities that affect electrons or fields of electrons in adesired manner consistent with the intended function of an electroniccomputing device. Example types of electronic components includecapacitors, resistors, diodes, transistors, and other types of physicalentities that affect electrons or fields of electrons in a mannerconsistent with the intended function of an electronic computing device.An example physical computing device is described below with referenceto FIG. 10.

The server computing system 102 is operated by or on behalf of thedistribution entity 110. In some embodiments, the distribution entity110 is a natural entity. In other embodiments, the distribution entity110 is a legal entity. Example types of entities include corporations,partnerships, proprietorships, companies, non-profit corporations,foundations, estates, governmental agencies, and other types of legalentities.

In different embodiments, the server computing system 102 is operated byor on behalf of different types of entities. In some implementations,the server computing system 102 is operated by a web services provideron behalf of the distribution entity 110. In such implementations, thedistribution entity 110 may not be aware of how the server computingsystem 102 is implemented. Consequently, services provided by the servercomputing system 102 may appear, from the perspective of thedistribution entity 110, to be provided by “the cloud.” In theterminology of cloud computing, “the cloud” refers to a network ofphysical electronic computing devices in which the individual physicalelectronic computing devices are abstracted away.

The client devices 104 comprise electronic computing systems that areable to play back media, such as a video. In different instances, theclient devices 104 may be a wide variety of different types ofelectronic computing systems. For example, the client devices 104 can bepersonal computers, lap top computers, cellular telephones, smartphones,watches, tablet computers, video game consoles, netbooks, personal mediaplayers, devices integrated into vehicles, television set top boxes,network appliances, server devices, supercomputers, mainframe computers,or other types of electronic computing systems.

Playing back media can entail rendering of the media in a format thatcan be consumed by a user. In most examples provided herein, the mediais video, although other types of media, such as games, can also beused. For example, if the media is video, the playback of the videoentails rendering video data to produce the video. Furthermore, a videois a displayed sequence of frames in which frames are replaced insuccession to create an illusion of motion. A frame is a still visibleimage. A user is a person viewing a video. Moreover, video data is datathat, when appropriately rendered, produces a video.

The users 106 view videos played back by the client devices 104. Theusers 106 are individual human beings. It should be appreciated that insome instances, multiple users at the same time are able to view a videoplayed back by the client devices 104.

The network 108 is an electronic communication network that facilitatescommunication between the server computing system 102 and the clientdevices 104. Electronic communication networks comprise networks of twoor more electronic computing devices (e.g., server computing system 102and the client devices 104) having one or more communication links, theelectronic computing devices configured to use the communication linkscommunicate electronic data.

The network 108 may be a wide variety of different types of electroniccommunication network. For example, the network 108 may be a wide-areanetwork, such as the Internet, a local-area network, a metropolitan-areanetwork, or another type of electronic communication network. Thenetwork 108 may include wired and/or wireless data links. A variety ofcommunications protocols may be used in the network 108 including, butnot limited to, Ethernet, Transport Control Protocol (TCP), InternetProtocol (IP), Hypertext Transfer Protocol (HTTP), SOAP, remoteprocedure call protocols, and/or other types of communicationsprotocols. In some implementations, the server computing system 102 andthe client devices 104 communicate via the network 108 securely. In afirst example, the server computing system 102 and the client devices104 use secure sockets layer (SSL) techniques to communicate securelyover the network 108. In another example, the server computing system102 and the client devices 104 use IPSec to communicate securely overthe network 108.

In the example of FIG. 1, the client devices 104 receive video data fromthe server computing system 102 via the network 108. In differentembodiments, the client devices 104 receive the video data from theserver computing system 102 in different ways. In a first computingsystem 102 via the network 108. The video streams contain the videodata. In some instances, a video stream can be a succession of videodata supplied over time.

It should be appreciated that in other media distribution systems,client devices do not necessarily receive video data from servercomputing systems via electronic communications networks. For example,in one example media distribution system, video data is stored on acomputer-readable data storage medium. A computer-readable data storagemedium is a device or article of manufacture that stores data that canbe read by an electronic computing device. Example types ofcomputer-readable data storage media include CD-ROMS, compact discs,digital versatile discs (DVDs), Blu-ray discs, solid-state memorydevices, magnetic disks, read-only memory units, random access memorymodules, and other types of devices or articles of manufacture thatstore data that can be read by an electronic computing device. In thisexample, a client device receives the video data when a user inserts acomputer-readable data storage medium storing the video data into areader device configured to read data from the computer-readable datastorage medium. The reader device is integrated into or connected to theclient device such that the client device receives data read by thereader device.

Furthermore, the reader will appreciate that in some embodiments, theclient devices 104 receive the video data by dynamically generating thevideo data. In such implementations, the client devices 104 maydynamically generate the video data by executing software instructions.For example, the client devices 104 may store video game applicationsthat, when executed by the client devices 104, present the video data.In this example, the video game applications may dynamically generatethe video data.

When the client devices 104 receive the video data, the client devices104 play back the video. The video comprises a sequence of frames. Thesequence of frames comprises a first set of frames and a second set offrames. In some instances, the sequence of frames includes frames inaddition to those in the first set of frames and the second set offrames. Furthermore, in some instances, the first set of frames and thesecond set of frames include the same frame.

Each frame in the first set of frames comprises a different region in afirst set of visually corresponding regions. As used in this disclosure,a region of a frame is a bounded sub-section of the frame. In someinstances, a region of a frame does not include the entire frame.Visually corresponding regions are bounded sub-sections of frames in aseries of frames each containing digital images of the same object. Forexample, a series of frames in a video may include digital images of abillboard in the background of a scene. In this example, the regions ofthe frames containing the digital images of the billboard are visuallycorresponding regions. It should be appreciated that, in some instances,regions in a set of visually corresponding regions differ from frame toframe. For example, the image of the billboard may move around, becomebigger or smaller, may change color, may be partially obscured byanother object, and so on during the course of the series of frames. Inthis example, the regions differ from frame to frame such that theregion of each frame includes the image of the billboard.

The region in the first set of visually corresponding regions containsan advertisement. Advertisements include artifacts designed to raise auser's awareness of a product offered by an entity. A product can be agood or a service. Example types of artifacts include digital images andanimated sequences of digital images. For example, a company's logo canbe an artifact designed to raise a user's awareness of a product offeredby the company.

In some embodiments, the first set of visually corresponding regions inan original version of the video does not contain the advertisement orcontains an undesired advertisement. However, after the original versionof the video was produced, the first set of visually correspondingregions is modified such that the first set of visually correspondingregions contains the desired advertisement.

For example, assume that the video is a movie produced in the year 1996.In the background of a scene of the movie, there is a blank exteriorwall of a building. In this example, the first set of visuallycorresponding regions contains the digital image of the wall.Furthermore, in this example, in the year 2009 the movie is set to bere-released on the Internet. In advance of the re-release of the movie,the distribution entity 110 modifies the image within the first set ofcorresponding regions such that instead of containing images of theblank wall, the first set of visually corresponding regions containsimages of the wall, except with a company's logo painted on the wall.The distribution entity 110 can be responsible for re-releasing themovie and can receive compensation from one or more advertisers 112 toembed advertisements in this way. In some instances, the video maycontain a plurality of such sets of visually corresponding regionscontaining advertisements.

In many instances, the advertisement is located in an unobtrusivelocation within the video. That is, the advertisement is located awayfrom where users' attention is likely to be. As opposed to locatingadvertisements at locations where the users' attention is likely to be,locating advertisements at unobtrusive locations may make the video feelmore natural and may improve the viewing experiences of the users 106.For example, the advertisement may be in the background. In anotherexample, the advertisement may be in the foreground, but not a part ofthe foreground where the primary action is occurring. In a yet anotherexample, the advertisement may be in a part of a scene that is notcompletely in focus.

Each frame in the second set of frames comprises a different region in asecond set of visually corresponding regions. Each region in the secondset of visually corresponding regions contains a hidden artifact. Thehidden artifact is an artifact for which the users 106 are encouraged tolook. The hidden artifact may be a wide variety of different types ofartifact.

For example, the hidden artifact may be a digital image of a particulartype of handbag. In another example, the hidden artifact may be adigital image of a particular type of telephone. In different instances,the hidden artifact may or may not be an advertisement. Furthermore, indifferent instances, the hidden artifact may or may not be in anoriginal version of the video. For instance, in the movie example of theprevious paragraph, the version of the movie produced in 1996 may or maynot include the hidden artifact.

The users 106 are provided with messages that encourage the users 106 tolook for the hidden artifact. In different instances, the messages areprovided to the users 106 in different ways. For example, the video maycontain frames that include a printed message encouraging the users 106to look for the hidden artifact in the video. In this first example, theprinted message may read “when you find a green coffee cup in thisvideo, click on it to be entered in a drawing for a free prize!” Inanother example, the video may be accompanied by audio in which theusers 106 are verbally encouraged to look for the hidden artifact in thevideo. In yet another example, a web page may include a printed messagethat encourages the users 106 to look for the hidden artifact in thevideo. In this example, the web page may be a page in which the video isembedded or another web page. Furthermore, in this example, thedistribution entity 110 may embed the message into the web page as anadvertisement or as part of the normal content of the web page. In yetanother example, a physical medium (e.g., newspaper, magazine,billboard, brochures, handouts, product packaging for the video oranother good, etc.) may contain a message encouraging the users 106 tolook for the hidden artifact in the video. In yet another example,messages encouraging the users 106 to look for the hidden artifact inthe video are transmitted to the users 106 via a broadcast medium (e.g.,aerial television, satellite television, cable television, Internettelevision, aerial radio, satellite radio, Internet radio, etc.) or viaanother information distribution medium (e.g., instant messages, textmessages, TWITTER®, e-mail messages, social networking sites, etc.). Inyet another example, a person encourages the users 106 to look for thehidden artifact in the video. In this example, the person may be anactor in the video, a celebrity, or some other person.

Furthermore, in some embodiments, the message encourages the users 106to look for the hidden artifact with the promise of a reward to theusers 106 if the users 106 find the hidden artifact. In a first example,the messages encourage the users 106 to look for the hidden artifactwith the promise that the users 106 will have a chance to win a prize ifthe users 106 find the hidden artifact. In this first example, the prizemay be associated with the content of the video. For instance, if thevideo is an episode of a television show about fashionable New Yorkwomen, the prize may be a pair of shoes from a luxury shoe designer. Ina second example, the message encourages the users 106 to look for thehidden artifact with the promise that the users 106 will be shownspecial footage if the users 106 find the hidden artifact. In thissecond example, the special footage may be a deleted scene of a movie, atrailer for a highly anticipated upcoming movie, scenes from an upcomingepisode of a television program, and so on. In a third example, themessage encourages the users 106 to look for the hidden artifact withthe promise that the users 106 will be able to access a secret level ofa video game, unlock a special video game character, play a secret game,etc.

In some embodiments, there can be a varying number of prizes. Forexample, if the video is a full-length movie, there can be 6-10 prizeswith associated hidden artifacts embedded in the movie. The menu oropening credits for the movie can explain the contest and identify thedifferent hidden artifacts (e.g., icons) for which to look in the movieand the associated prizes for each. Some of the prizes may be small(e.g., a pair of sunglasses), while others can be large (e.g., cashprizes, cars, motorcycles, etc.). For the smaller prizes the user canselect the artifact within the movie and provide contact information,such as name, age, and email address, so that the prize can be sentdirectly to the user. For larger prizes, the user may provide contactinformation so that the user can be entered into a contest (e.g.,lottery, raffle) to win the larger prize. Other variations are possible.

In yet another embodiment, the user is given a code, such as a number,when the user finds the hidden artifact. The user can then use thenumber at a later point to play a game and/or win a prize. For example,the user can send a text to the number provided to receive informationabout accessing a game. The user can then play the game to win prizes.

During playback of the video, the hidden artifact is at least somewhatdifficult for the users 106 to perceive except when the users 106 arepaying attention to details of the video. For example, the hiddenartifact may be small in size. In a second example, the hidden artifactmay only be shown in the video for a short amount of time. In a thirdexample, the hidden artifact may be in a part of a scene that is notwhere the users 106 would typically focus their attentions. Forinstance, in this third example, if two characters in a movie arefighting in the foreground while traveling down a highway at greatspeed, the attentions of the users 106 would likely be focused on thefighting action in the foreground. Consequently, in this third example,when the users 106 are not paying attention to details in the video itwould be at least somewhat difficult for the users 106 to perceive thehidden artifact when the hidden artifact is on a truck in the backgroundmoving in the opposite direction.

In typical instances, the users 106 are not told where or when thehidden artifact appears in the video. Because the hidden artifact is atleast somewhat difficult for users 106 to perceive except when the users106 are paying attention to details of the video, the users 106 are morelikely to pay close attention to details throughout the video. Becausethe users 106 are more likely to pay close attention to detailsthroughout the video, the users 106 are more likely to notice the one ormore advertisements unobtrusively inserted into the video. Having theusers 106 notice an advertisement is a goal of an advertiser.

When the users 106 find a hidden artifact in a video while the clientdevices 104 are playing back the video, the users 106 are able to selectthe hidden artifact. In some embodiments, selecting the hidden artifactentails providing, by the users 106, selection input to the clientdevices 104. The selection input indicates a selection of a locationwithin or reasonably close to a region in the second set of visuallycorresponding regions of the second set of frames. Because the hiddenartifact may be quite small, selecting the hidden artifact itself may berelatively difficult while the video is being played back. Accordingly,in some implementations, if the selection input indicates a selection ofa location relatively close to the hidden artifact (e.g., in the samequadrant of the second set of frames as the hidden artifact) theselection input is taken to indicate that one of the users 106 hasselected a location corresponding to the hidden artifact.

In different instances, the client devices 104 receive the selectioninput in different ways. For example, the client devices 104 may receivethe selection input via an input device. Example types of input devicesinclude mice, trackballs, stylus input devices, keywords, video gamecontrol pads, joysticks, movement-sensitive controllers (e.g., NintendoWII® remote controllers, etc.), gun type video game controllers, musicalinstrument type video game controllers, touch sensitive screens,television/home entertainment system remote controllers, and other typesof input devices.

In response to receiving the selection input, the client devices 104access a target resource. The client devices 104 do not access thetarget resource when the client devices 104 do not receive a selectioninput that indicates that the users 106 have selected the hiddenartifact.

The target resource may be a wide variety of different types ofresources. The target resource may be a game, software instructions thatunlock a special video game character, video footage, softwareinstructions that unlock a video game level, a web page that allows theusers 106 to enter information to be entered in a drawing for a prize,and so on.

In different instances, the client devices 104 access the targetresource in different ways. For instance, the client devices 104 mayaccess the target resource in different ways depending on the type ofthe target resource. In a first example, the target resource is a webpage. In this first example, the client devices 104 access the web pageby transmitting a resource request to a server computing system thathosts the web page, receiving the web page in response to the resourcerequest, and displaying the web page. Furthermore, in this firstexample, the server computing system that hosts the web page may or maynot be the server computing system 102. In a second example, the targetresource is a game. In this second example, the client devices 104access the resource by executing software instructions that cause theclient devices 104 to present the game.

FIG. 2 illustrates example functional components of the server computingsystem 102. It should be appreciated that FIG. 2 is an example providedfor purposes of explanation only. In other instances, the servercomputing system 102 may contain different logical components. In someembodiments, a functional component is a sub-part of a system, thesub-part having a well-defined purpose and functionality.

As illustrated in the example of FIG. 2, the server computing system 102comprises a data storage system 200, a processing unit 202, and anetwork interface 204. The network interface 204 enables the servercomputing system 102 to transmit data on the network 108 and to receivedata from the network 108. In some embodiments, a network interface is aset of one or more physical network interface cards. Furthermore, insome embodiments, a network interface card is a computer hardwarecomponent designed to allow a computer to communicate over an electroniccommunication network. In some example embodiments, the networkinterface 204 is able to store data received from the network 108directly into the data storage system 200 and to directly transmit onthe network 108 data stored in the data storage system 200.

As illustrated in the example of FIG. 2, the data storage system 200stores a video 206, a server application 208, and a video modificationmodule 210. As mentioned above, the server computing system 102comprises a collection of one or more electronic computing devices andthe data storage system 200 comprises a collection of one or morecomputer-readable data storage media. In embodiments where the servercomputing system 102 comprises a plurality of electronic computingdevices and the data storage system 200 comprises a plurality ofcomputer-readable data storage media, the video 206, the serverapplication 208, and the video modification module 210 may be stored atdifferent computer-readable data storage media and potentially atcomputer-readable data storage media in different electronic computingdevices. For instance, the server application 208 may be stored at acomputer-readable data storage medium at a first server device at aserver farm and the video modification module 210 may be stored at aplurality of computer-readable data storage media at a second serverdevice in the server farm. In some embodiments, the video 206 can bestored as a single file, multiple files, in a database, or in anothertype of data structure.

In some example embodiments, the server application 208 comprises a setof software instructions. This disclosure includes statements thatdescribe the server application 208 as performing various actions. Suchstatements should be interpreted to mean that the server computingsystem 102 performs the various actions when the processing unit 202executes software instructions of the server application 208.

A software application comprises a set of software instructions that,when executed by a processing unit of a computing system, cause thecomputing system to provide a computerized tool with which a user caninteract. Processing units comprise sets of one or more physicalintegrated circuits capable of executing software instructions. Softwareinstructions are data structures that represent operations of aprocessing unit. For example, a software instruction may be a datastructure comprising an operation code and zero or more operandspecifiers. In this example, the operand specifiers may specifyregisters, memory addresses, or literal data.

The server application 208 receives resource requests from the network108 via the network interface 204 and responds appropriately to theresource requests. Resource requests comprise requests to perform anaction on a resource. Example types of resource requests include getrequests that request the server application 208 to return copies ofresources to computing systems, delete requests that request the serverapplication 208 to delete resources, post requests that request theserver application 208 to submit data to specified resources, and othertypes of requests to perform actions on resources. In addition, theserver application 208 comprises software instructions that, whenexecuted by the processing unit 202, cause the server computing system102 to respond appropriately to the resource requests.

In the example of FIG. 2, the server application 208 receives a resourcerequest from the one of the client devices 104. For ease of explanation,this document assumes that the server application 208 receives theresource request from the client device 104A. The resource requestrequests the video 206. In response to the resource request, the serverapplication 208 transmits the video 206 to the client device 104A. Thevideo data can be rendered as the video. In one example implementation,the server application 208 transmits a copy of the video 206 to theclient device 104A. In another example implementation, the serverapplication 208 transmits a video stream to the client device 104A. Thevideo stream contains video data in the video 206.

In some example implementations, the video modification module 210comprises a set of software instructions. This disclosure includesstatements that describe the video modification module 210 as performingvarious actions. Such statements should be interpreted to mean that theserver computing system 102 performs the various actions when theprocessing unit 202 executes software instructions of the videomodification module 210. As described below, the video modificationmodule 210 modifies the video 206 such that the video includes one ormore advertisements and a target resource.

FIG. 3 illustrates example functional components of the client device104A. It should be appreciated that FIG. 3 is an example provided forpurposes of explanation only. In other instances, the client device 104Amay contain different logical components. Furthermore, the reader willunderstand that other ones of the client devices 104 can have similarfunctional components.

As illustrated in the example of FIG. 3, the client device 104Acomprises a data storage system 300, a processing unit 302, a networkinterface 304, a storage device interface 306, and an input deviceinterface 308. The data storage system 300 stores a playback application310 and a media store 312. The network interface 304 enables the clientdevice 104A to transmit data on the network 108 and to receive data fromthe network 108. The storage device interface 306 enables the clientdevice 104A to read data from one or more computer-readable data storagemedia external to the client device 104A (i.e., an external data storagemedium). The input device interface 308 enables the client device 104Ato receive input from an input device controlled by the user 106A.

In some example embodiments, the playback application 310 comprises aset of software instructions. This disclosure includes statementsdescribing the playback application 310 as performing various actions.Such statements should be interpreted to mean that the client device104A performs the various actions when the processing unit 302 executessoftware instructions of the playback application 310. As describedbelow, the playback application 310 plays back videos.

It should be appreciated that in alternate implementations, functionalcomponents of the client device 104A are implemented as separatephysical electronic computing devices. For example, a first physicalelectronic computing device at a location of the user 106A may receiveinput from an input device control by the user 106A and transmit theinput to a second physical electronic computing device via an electroniccommunications network. In this example, the second physical electroniccomputing device may process the input and the video data and transmitthe processed video data to a third physical electronic computing deviceat the location of the user 106A. The third physical electroniccomputing device uses the processed video data to display the video. Inthis way, input processing and video processing appears, from theperspective of the user 106A, to be performed by the cloud.

The media store 312 stores video data on a temporary or persistentbasis. In a first example, the media store 312 stores one or more videofiles. In a second example, the media store 312 stores video datareceived in a video stream. In a third example, the media store 312stores software instructions of a video game application that generatesvideo.

FIGS. 4 and 5 illustrate one example of a video 350 into which anembedded advertisement and hidden artifact have been introduced. In FIG.4, the video 350 is shown in a sequence including a billboard 352. Thecontent of the billboard is replaced or overlaid with an embeddedadvertisement that is added at a point after which the video 350 wascreated. When the users 106 view the video 350, the users 106 see thebillboard with the embedded advertisement.

In FIG. 5, another sequence of the video 350 is shown. In this sequence,the hidden artifact 354 has been embedded on top of a building 360. Asthe users 106 watch the video 350, the users 106 may see the hiddenartifact 354. If the users 106 do see the hidden artifact 354, the users106 can select the hidden artifact 354 to, for example, win a prize orenter a drawing, as described herein.

Various software components can be used to embed the advertising and thehidden artifact into the video. In one example, one or more of thefollowing software products are used to embed the advertising and hiddenartifact: Adobe® After Effects® CS4 and After Effects CS4 Mocha softwarefrom Adobe Systems Incorporated; Shake advanced digital compositingsoftware from Apple Inc.; Boujou object tracking software from 2d3;3D-Equalizer motion tracking software from Science.D.Visions; and MAYA®3D modeling, animation, visual effects, and rendering software andMental Ray® rendering engine software from Autodesk, Inc. Other toolscan also be used.

FIG. 6 illustrates an example operation 400 of the distribution entity110 to distribute a video containing a hidden artifact designed toattract a user's attention to advertisements embedded in the video. Itshould be appreciated that the operation 400 is an example provided forpurposes of explanation only. In other implementations, operations todistribute the video may involve more or fewer steps, or may involve thesteps of the operation 400 in a different order. Furthermore, theoperation 400 is explained with reference to FIGS. 1-3. It should beappreciated that other operations to distribute the video may be used indifferent systems and in computing systems having functional componentsother than those illustrated in the examples of FIGS. 1-3. For ease ofexplanation, this document describes the example of FIG. 6 withreference to the client device 104A and the user 106A. The operation 400can be applicable to other ones of the client devices 104 and users 106.

As illustrated in the example of FIG. 6, the operation 400 begins whenthe distribution entity 110 forms an advertising agreement with one ofthe advertisers 112 (402). In some embodiments, the advertisingagreement obligates the distribution entity 110 to distribute a videothat includes an advertisement and a hidden artifact.

Next, the distribution entity 110 creates a target resource (404). Indifferent instances, the distribution entity 110 uses different tools tocreate the target resource. For example, the distribution entity 110 mayuse a web page design application to create the target resource. Inanother example, the distribution entity 110 may use an applicationprogramming suite to build software instructions that, when executed,provide the target resource. In some instances, a party other than thedistribution entity 110 creates the target resource. For example, theadvertiser may be responsible for creating the target resource.

Pursuant to the advertising agreement, the distribution entity 110embeds one or more advertisements into the video (406). In differentinstances, the distribution entity 110 embeds the advertisements intothe video in different ways. In a first example implementation, thedistribution entity 110 manually identifies appropriate regions offrames in the video for the advertisements. In this first example, thedistribution entity 110 may then use the video modification module 210or other video manipulation software to manually update the identifiedregions to include the advertisements. In a second exampleimplementation, the distribution entity 110 embeds the advertisements inthe video by using a software application that automatically identifiesappropriate regions of frames in the video for the advertisements. Inthis second example implementation, the software application may alsoautomatically embed the advertisements in the identified regions.

It should be appreciated that, in some instances, the video may alreadycontain the advertisements. In such instances, it may not be necessaryfor the distribution entity 110 or another entity to modify the video tocontain the advertisements.

Next, the distribution entity 110 embeds a hidden artifact in the video(408). In different embodiments, the distribution entity 110 embeds thehidden artifact in the video in different ways. For instance, thedistribution entity 110 may manually identify appropriate regions offrames and/or manually add the hidden artifact to the identifiedregions. In another instance, the distribution entity 110 may use asoftware application that automatically identifies appropriate regionsof frames and/or automatically adds the hidden artifact to theidentified regions. It should be appreciated that, in some instances,the video may already contain the hidden artifact. In such instances, itmay not be necessary for the distribution entity 110 to modify the videoto contain the hidden artifact.

The distribution entity 110 then generates link data and hidden artifactlocation data (410). The link data comprises data that indicates how toaccess target resource. The hidden artifact location data includes datathat indicates where the hidden artifact is located in the video. In aninstance where the video is distributed in a video file, the video filemay contain the link data and the hidden artifact location data. In aninstance where the video is distributed in a video stream, the link dataand the hidden artifact location data may be streamed to the clientdevice 104A as metadata in the video stream.

The distribution entity 110 then takes steps to encourage the users 106to look for the hidden artifact in the video (412). As discussed above,the distribution entity 110 may take a wide variety of steps toencourage the users 106 to look for the hidden artifact in the video.For example, the distribution entity 110 may include messages in thevideo encouraging the users 106 to look for the hidden artifact in thevideo.

Next, the distribution entity 110 distributes the video (414). Asdiscussed above, the distribution entity 110 may distribute the video ina variety of ways. For example, the distribution entity 110 candistribute the video by transmitting a video file or a video stream overan electronic communications network. In another example, thedistribution entity 110 can distribute the video by selling or givingaway computer-readable storage media on which video data representingthe video is stored.

Subsequently, the distribution entity 110 updates the hidden artifact inthe video and the hidden artifact location data (416). For example, thedistribution entity 110 can change a location of the hidden artifact toa different location within a set of frames and/or to a different timewithin the video. In a second example, the distribution entity 110encourages the users 106 to look for a different artifact in the video.In this second example, the distribution entity 110 updates the hiddenartifact location data such that the client device 104A determines thatthe user 106A has selected the different hidden artifact. After updatingthe hidden artifact and the hidden artifact location data, thedistribution entity 110 distributes the updated video (414).

The distribution entity 110 can continue to update the hidden artifactand the hidden artifact location data on a regular or irregular basis.Once a user locates the hidden artifact, the user could potentially postthe location of the hidden artifact in a public forum such as theInternet or print media. Consequently, the general public could quicklyfind the hidden artifact and access the target resource without payingattention to the details of the video. As a result, the users whoalready know the location of the hidden artifact are less likely tonotice the advertisements embedded in the video. Updating the hiddenartifact and the hidden artifact location data in this manner maydiminish this possibility at least to some extent.

FIG. 7 illustrates an example operation 500 of the client device 104A toplay back the video 206. It should be appreciated that the operation 500is an example provided for purposes of explanation only. In otherimplementations, operations to play back the video 206 may involve moreor fewer steps, or may involve the steps of the operation 500 in adifferent order. Furthermore, the operation 500 is explained withreference to FIGS. 1-3. It should be appreciated that other operationsto play back the video 206 may be used in different systems and incomputing systems having functional components other than thoseillustrated in the examples of FIGS. 1-3. Furthermore, the reader willunderstand that other ones of the client devices 104 can perform similaroperations.

As illustrated in the example of FIG. 7, the operation 500 begins whenthe playback application 310 receives video data of the video 206 (502).As discussed above, the playback application 310 may receive video datain a variety of ways. For instance, the playback application 310 mayreceive video data from a video file stored at the data storage system300, a video stream received via the network interface 304, read from acomputer-readable data storage medium via the storage device interface306, generated by executing software instructions, and so on.

After receiving at least some of the video data, the playbackapplication 310 begins playback of the video (504). After the playbackapplication 310 begins playback of the video 206, the playbackapplication 310 determines whether playback of the video 206 is complete(506). Playback of the video 206 is complete when the playbackapplication 310 has displayed the last frame of the video 206.

If playback of the video 206 is not complete (“NO” of 506), the playbackapplication 310 is able to receive selection input from the user 106A(508). In other words, while the playback application 310 is playingback the video 206, the user 106A is able to provide selection input tothe playback application 310.

In response to receiving the selection input, the playback application310 determines whether the selection input indicates a location in atarget region of a target frame (510). The target frame is a framecontaining a hidden artifact. Furthermore, the target region in a frameis a region containing a hidden artifact. In some example embodiments,the playback application 310 uses the hidden artifact location data todetermine whether the selection input indicates a location in a targetregion of a target frame.

If the playback application 310 determines that the selection input doesnot indicate a location in a target region of a target frame of thevideo 206 (“NO” of 510), the playback application 310 continues playbackof the video (512). The playback application 310 then loops back anddetermines whether playback of the video 206 is complete (506). If theplayback application 310 never receives selection input or neverreceives selection input indicating a target region of a target frame ofthe video 206, the playback application 310 may continue to loop throughsteps 506, 508, 510, and 512 until playback of the video 206 iscomplete.

On the other hand, if the playback application 310 determines that theselection input indicates a location in a target region of a targetframe (“YES” of 510), the playback application 310 suspends playback ofthe video 206 (514). Suspending playback of the video 206 enables theuser 106A to interact with the target resource and the resume viewingthe video 206 after the user 106A is finished interacting with thetarget resource.

Next, the playback application 310 accesses the target resource (516).In some example embodiments, the playback application 310 uses link datato determine how to access the target resource. As described above, theplayback application 310 may access the target resource in a widevariety of ways depending on the type of the target resource.

After accessing the target resource, the playback application 310receives resource interaction input from the user 106A (518). Theresource interaction input indicates things that the user 106A wants todo with the target resource. Because the target resource may be a widevariety of different types of resource, the resource interaction inputmay indicate a wide variety of things that the user 106A wants to dowith the target resource. For example, if the target resource is a webpage containing a web form, the resource interaction input may indicatedata that the user 106A wants to enter into text boxes of the web form.In another example, if the target resource is a game, the resourceinteraction input may indicate actions that the user 106A wants toperform in the game.

In response to receiving the resource interaction input, the playbackapplication 310 applies the resource interaction input to the targetresource (520). Applying the resource interaction input to the targetresource entails processing the resource interaction input in a mannerappropriate for the target resource. Because the target resource may bea wide variety of different types of resource, the playback application310 applies the resource interaction input in a wide variety of ways.For example, if the target resource is a web page containing a web formand the resource interaction input indicates data that the user 106Awants to enter into text boxes of the web form, the playback application310 applies the resource interaction input by displaying the data in thetext boxes. In another example, if the target resource is a game and theresource interaction input is a command to move a character in the game,the playback application 310 applies the resource interaction input bymoving the character in the game.

Although not illustrated in the example of FIG. 7 for the sake ofbrevity, the playback application 310 may receive and apply manyresource interaction inputs. Furthermore, it should be appreciate thatthere is no applicable resource interaction input for some targetresources. For example, the target resource may simply be a message witha code that a user can enter in a web page to redeem a prize. In thisexample, the user 106A cannot provide resource interaction input to themessage. In such instances, the operation 500 would not include steps518 and 520.

Subsequently, the playback application 310 receives playback resumeinput from the user 106A (522). The playback resume input indicates tothe playback application 310 that the user 106A wants to resume playbackof the video 206. In response to receiving the playback resume input,the playback application 310 resumes playback of the video 206 (524).The playback application 310 then loops back and determines whetherplayback of the video 206 is complete (506). If playback of the video206 is complete (“YES” of 506), the playback application 310 enters aplayback stopped state (526).

FIG. 8 illustrates an example operation 600 of the server computingsystem 102 to distribute the video 206. It should be appreciated thatthe operation 600 is an example provided for purposes of explanationonly. In other implementations, operations to distribute the video 206may involve more or fewer steps, or may involve the steps of theoperation 600 in a different order. Furthermore, the operation 600 isexplained with reference to FIGS. 1-3. It should be appreciated thatother operations to distribute the video 206 may be used in differentsystems and in computing systems having functional components other thanthose illustrated in the examples of FIGS. 1-3. For ease of explanation,this document describes the example of FIG. 8 with reference to theclient device 104A and the user 106A. The operation 600 can beapplicable to other ones of the client devices 104 and users 106.

As illustrated in the example of FIG. 8, the operation 600 starts whenthe server computing system 102 stores an initial version of the video206 (602). After the server computing system 102 has stored the initialversion of the video 206, the server application 208 receives a resourcerequest for the video file (604). In response to receiving the resourcerequest, the server application 208 transmits data of the video 206 tothe client device 104A (606).

Subsequently, the server computing system 102 stores an updated versionof the video 206 (608). The updated version of the video 206 containsupdated video data. The updated video data, when rendered by a clientdevice, plays back an updated video. The updated video is substantiallythe same as the initial version of the video, except that the updatedvideo contains the hidden artifact at a location different than alocation of the hidden artifact in the initial version of the video. Insome instances, the updated version of the video 206 is accompanied bydifferent hidden artifact location data.

After storing the updated version of the video 206, the serverapplication 208 receives a second resource request (604). The secondresource request may be from the client device 104A or a differentclient device. In response to the second resource request, the serverapplication 208 transmits the updated video data in the updated versionof the video 206. Although not illustrated in the example of FIG. 8 forpurposes of clarity, the server application 208 may receive and respondto many resource requests before storing the updated version of thevideo 206.

FIG. 9 illustrates an example operation 700 of the video modificationmodule 210 to modify the video 206 to contain the hidden artifact andthe advertisements. It should be appreciated that the operation 700 isan example provided for purposes of explanation only. In otherimplementations, operations to modify the video 206 may involve more orfewer steps, or may involve the steps of the operation 700 in adifferent order. Furthermore, the operation 700 is explained withreference to FIGS. 1-3. It should be appreciated that other operationsto modify the video 206 may be used in different systems and incomputing systems having functional components other than thoseillustrated in the examples of FIGS. 1-3.

In the example of FIG. 9, the operation 700 starts when the videomodification module 210 modifies the video 206 such that the videoincludes at least one advertisement (702). The video modification module210 may modify the video 206 such that the video 206 includes theadvertisement in a variety of ways. In a first example implementation,the video modification module 210 automatically modifies the video 206such that the video 206 includes the advertisement. In this firstexample implementation, a user provides the advertisement to the videomodification module 210. The video modification module 210 thenautomatically identifies an appropriate location and time within thevideo 206 to display the advertisement and automatically adds theadvertisement at the identified location and time. In this first exampleimplementation, the video modification module 210 may automaticallyperform various graphics operations on the advertisement to make theadvertisement appear natural in the video 206. Such graphics operationsinclude shadowing, bump mapping, perspective skewing, motion blurring,anti-aliasing, stretching, and so on. In other example implementations,a user may interact more closely with the video modification module 210to modify the video 206 such that the video 206 includes theadvertisement. For instance, the user may manually interact with thevideo modification module 210 to instruct the video modification module210 where and when to place the advertisement in the video 206 and/orwhat graphics operations to apply to the advertisement to make theadvertisement appear natural in the video 206.

Next, the video modification module 210 modifies the video 206 such thatthe video 206 includes a hidden artifact (704). The video modificationmodule 210 may modify the video 206 such that the video 206 includes thehidden artifact in a variety of ways. In a first example implementation,the video modification module 210 automatically modifies the video 206such that the video 206 includes the hidden artifact. In this firstexample implementation, a user provides the hidden artifact to the videomodification module 210. The video modification module 210 thenautomatically identifies an appropriate location and time within thevideo 206 to display the hidden artifact and automatically adds thehidden artifact at the identified location and time. In this firstexample implementation, the video modification module 210 mayautomatically perform various graphics operations on the hidden artifactto make the hidden artifact appear natural in the video 206. In otherexample implementations, a user may interact more closely with the videomodification module 210 to modify the video 206 such that the video 206includes the hidden artifact. For instance, the user may manuallyinteract with the video modification module 210 to instruct the videomodification module 210 where and when to place the hidden artifact inthe video 206 and/or what graphics operations to apply to the hiddenartifact to make the hidden artifact appear natural in the video 206.

After modifying the video 206 to include the hidden artifact, the videomodification module 210 generates link data and hidden artifact locationdata (706). The video modification module 210 may generate the link dataand the hidden artifact location data in a variety of ways. For example,the video modification module 210 may cause a display device to displaya user interface that enables a user to create the link data and/or thehidden artifact location data. In another example, the videomodification module 210 generates the link data and/or the hiddenartifact location data automatically.

Subsequently, the video modification module 210 stores the video 206 atthe data storage system 200 (708). After storing the video 206 at thedata storage system 200, the video modification module 210 modifies thevideo 206 such that the hidden artifact is moved or such that the hiddenartifact is replaced by another hidden artifact (710). As discussedabove, moving or replacing the hidden artifact with another hiddenartifact reduces the impact of distribution of knowledge regarding thelocation of the hidden artifact. In different implementations, the videomodification module 210 modifies the video 206 such that the hiddenartifact is moved or replace by another hidden artifact in differentways. For example, the video modification module 210 may automatically(i.e., without human intervention) modify the video 206 such that thehidden artifact is moved or such that the hidden artifact is replaced byanother hidden artifact. In another example, the video modificationmodule 210 may modify the video 206 such that the hidden artifact ismoved or such that the hidden artifact is replaced by another hiddenartifact in response to human interaction with the video modificationmodule 210. After modifying the video 206 such that the hidden artifactis moved or such that the hidden artifact is replaced by another hiddenartifact, the video modification module 210 again stores the video file(708). Steps 708 and 710 may recur an indefinite number of times.

In some examples, multiple runs or variations in the placement of theadvertising and hidden artifacts can be made. For example, a first runof the movie can be made with a first set of advertisers, and a secondrun can be made with a different set of advertisers. The first run moviecan be distributed for a certain number of users or for a certain amountof time, and then the second run movie can be used.

Likewise, multiple variations of the movie with different placement ofthe hidden artifacts can be used. In such an example, the multiplevariations can each be distributed for a period of time, or all can berandomly distributed to users.

FIG. 10 illustrates example physical components of an electroniccomputing device 1000. It should be appreciated that the electroniccomputing device 1000 is merely one example. Other electronic computingdevices may include more or fewer physical components and may beorganized in different ways. The server computing system 102 may includeone or more electronic computing devices like the electronic computingdevice 1000. The client devices 104 may be implemented like theelectronic computing device 1000.

As illustrated in the example of FIG. 10, the electronic computingdevice 1000 comprises a memory unit 1002. The memory unit 1002 is acomputer-readable data storage medium capable of storing data and/orinstructions. The memory unit 1002 may be a variety of different typesof computer-readable storage media including, but not limited to,dynamic random access memory (DRAM), double data rate synchronousdynamic random access memory (DDR SDRAM), solid state memory devices,reduced latency DRAM, DDR2 SDRAM, DDR3 SDRAM, Rambus RAM, or other typesof computer-readable storage media.

In addition, the electronic computing device 1000 comprises a processingunit 1004. As mentioned above, a processing unit is a set of one or morephysical electronic integrated circuits that are capable of executinginstructions. In a first example, the processing unit 1004 may executesoftware instructions that cause the electronic computing device 1000 toprovide specific functionality. In this first example, the processingunit 1004 may be implemented as one or more processing cores and/or as aset of microprocessors, the set of microprocessors comprising at leastone microprocessor. For instance, in this first example, the processingunit 1004 may be implemented as one or more Intel Core 2microprocessors. The processing unit 1004 may be capable of executinginstructions in an instruction set, such as the x86 instruction set, thePOWER instruction set, a RISC instruction set, the SPARC instructionset, the IA-64 instruction set, the MIPS instruction set, or anotherinstruction set. In a second example, the processing unit 1004 may beimplemented as an ASIC that provides specific functionality. In a thirdexample, the processing unit 1004 may provide specific functionality byusing an ASIC and by executing software instructions.

The electronic computing device 1000 also comprises a video interface1006. The video interface 1006 enables the electronic computing device1000 to output video information to a display device 1008. The displaydevice 1008 may be a variety of different types of display devices. Forinstance, the display device 1008 may be a cathode-ray tube display, anLCD display panel, a plasma screen display panel, a touch-sensitivedisplay panel, a LED array, an Organic LED (OLED) screen, or anothertype of display device.

In addition, the electronic computing device 1000 includes anon-volatile storage device 1010. The non-volatile storage device 1010is a computer-readable data storage medium that is capable of storingdata and/or instructions. The non-volatile storage device 1010 may be avariety of different types of non-volatile storage devices. For example,the non-volatile storage device 1010 may be one or more hard diskdrives, solid state memory devices, magnetic tape drives, CD-ROM drives,DVD-ROM drives, Blu-ray disc drives, or other types of non-volatilestorage devices.

The electronic computing device 1000 also includes an external componentinterface 1012 that enables the electronic computing device 1000 tocommunicate with external components. As illustrated in the example ofFIG. 10, the external component interface 1012 enables the electroniccomputing device 1000 to communicate with an input device 1014 and anexternal storage device 1016. In one implementation of the electroniccomputing device 1000, the external component interface 1012 is aUniversal Serial Bus (USB) interface. In another example implementationof the electronic computing device 1000, the external componentinterface 1012 is a FireWire interface. In other implementations of theelectronic computing device 1000, the electronic computing device 1000may include another type of interface that enables the electroniccomputing device 1000 to communicate with input devices and/or outputdevices. For instance, the electronic computing device 1000 may includea PS/2 interface. The input device 1014 may be a variety of differenttypes of devices including, but not limited to, keyboards, mice,trackballs, stylus input devices, touch pads, touch-sensitive displayscreens, or other types of input devices. The external storage device1016 may be a variety of different types of computer-readable datastorage media including magnetic tape, flash memory modules, magneticdisk drives, optical disc drives, solid state memory devices, and othercomputer-readable data storage media.

In addition, the electronic computing device 1000 includes a networkinterface card 1018 that enables the electronic computing device 1000 totransmit data to and receive data from an electronic communicationnetwork. The network interface card 1018 may be a variety of differenttypes of network interface. For example, the network interface card 1018may be an Ethernet interface, a token-ring network interface, a fiberoptic network interface, a wireless network interface (e.g., a WiFiinterface, a WiMax interface, Third Generation (3G) and FourthGeneration (4G) wireless communication interfaces, a Universal MobileTelecommunications System interface, a CDMA2000 interface, anEvolution-Data Optimized interface, an Enhanced Data rates for GSMEvolution (EDGE) interface, etc.), or another type of network interface.

The electronic computing device 1000 also includes a communicationsmedium 1020. The communications medium 1020 facilitates communicationamong the various components of the electronic computing device 1000.The communications medium 1020 may comprise one or more different typesof communications media including, but not limited to, a PCI bus, a PCIExpress bus, an accelerated graphics port (AGP) bus, an Infinibandinterconnect, a serial Advanced Technology Attachment (ATA)interconnect, a parallel ATA interconnect, a Fiber Channel interconnect,a USB bus, FireWire, Integrated Drive Electronics (IDE), elasticinterface buses, a QuickRing bus, a Controller Area Network bus, aScalable Coherent Interface bus, a USB bus, an Ethernet connection, aSmall Computer System Interface (SCSI) interface, or another type ofcommunications medium.

The electronic computing device 1000 includes several computer-readabledata storage media (i.e., the memory unit 1002, the non-volatile storagedevice 1010, and the external storage device 1016). Together, thesecomputer-readable storage media may constitute a single data storagesystem. As discussed above, a data storage system is a set of one ormore computer-readable data storage mediums. This data storage systemmay store instructions executable by the processing unit 1004.Activities described in the above description may result from theexecution of the instructions stored on this data storage system. Thus,when this description says that a particular logical module performs aparticular activity, such a statement may be interpreted to mean thatinstructions of the logical module, when executed by the processing unit1004, cause the electronic computing device 1000 to perform theactivity. In other words, when this description says that a particularlogical module performs a particular activity, a reader may interpretsuch a statement to mean that the instructions configure the electroniccomputing device 1000 such that the electronic computing device 1000performs the particular activity.

FIG. 11 is a block diagram illustrating an alternative embodiment of theserver computing system 102. This alternate embodiment enables the users106 to play games that involve finding hidden artifacts. In these games,the server computing system 102 presents one or more videos to the users106. The videos include hidden artifacts and advertisements. When theusers 106 find the hidden artifacts in the videos, the users 106 selectlocations in the videos that correspond to the hidden artifacts. Inother words, the users 106 select locations reasonably close to regionsin the videos that contain the hidden artifacts. When one of the users106 selects one of the hidden artifacts, the server computing system 102receives selection input indicating a location in the video thatcorresponds to the selected artifact.

Because there are multiple hidden artifacts, the server computing system102 can receive a plurality of selection inputs from the user. Theseselection inputs indicate locations in the videos that correspond to aplurality of selected artifacts. The selected artifacts are among thehidden artifacts in the videos. For example, if there are ten hiddenartifacts, the selected artifacts can include all ten of the hiddenartifacts or fewer than all ten of the hidden artifacts.

The server computing system 102 performs different actions depending onwhich ones of the hidden artifacts are among the plurality of selectedartifacts. For example, the server computing system 102 can providedifferent rewards to a user depending on which ones of the hiddenartifacts were found by the user. For instance, the server computingsystem 102 can provide a first reward to the user if the user finds onecombination of the hidden artifacts and can provide a different rewardto the user if the user finds a different combination of the hiddenartifacts. Thus, the outcomes of playing the games can depend on whichones of the hidden artifacts the user finds.

The server computing system 102 can enable the users 106 to play varioustypes of games. For example, a given game can have a race-to-the-finishformat. Games having the race-to-the-finish format start at a particulartime and continue until a predetermined event occurs. Examplepredetermined events can include a user find all hidden resources invideos of the given game, a particular number or percentage of usersfinding all the hidden resources in the videos, a user has found hiddenresources in the videos 1120 worth a particular number of points, and soon.

In another example, a game can have a tournament format. Games havingthe tournament format have multiple rounds. A user can qualify for alater round by performing particular actions. For example, a user canqualify for a later round by finding all hidden artifacts in one of thevideos within a given time limit. In other words, the server application208 can provide the user with an opportunity to participate in the nextround of the tournament when particular ones of the hidden artifacts areselected. In another example, a user can qualify for a later round bybeing among the first users to hidden artifacts worth a given number ofpoints.

In yet another example, the given can have an instant win format. Userscan win games having the instant win format by finding particular hiddenartifacts in the videos.

As illustrated in the example of FIG. 11, the server computing system102 provides the server application 208, the video modification module210, a notification system 1100, and a resource library 1102. The servercomputing system 102 provides the server application 208, the videomodification module 210, and the notification system 1100 when one ormore processing units in the server computing system 102 executeappropriate software instructions. The resource library 1102 contains aset of resources. Resources in the resource library 1102 can be storedin the data storage system 200 within the server computing system 102 orin one or more other data storage systems accessible to the servercomputing system 102.

In the example of FIG. 11, the resource library 1102 includes profilecreation resources 1106, profiles 1108, profile pages 1110, coupons1112, coupon redemption resources 1114, a rewards catalog 1116, andpoint redemption resources 1118. In other embodiments, the resourcelibrary 1102 may include other types of resources or may not includeeach of these types of resources.

In addition, the resource library 1102 stores resources associated withgames 1104A through 1104N (collectively, “games 1104”). The games 1104can have various formats. For example, one of the games 1104 cancorrespond to a game having a race-to-the-finish format and another oneof the games 1104 can have an instant-win format. In another example,one of the games 1104 can have a tournament format and another one ofthe games 1104 can have the tournament format.

In some instances, the different games correspond to differentadvertising campaigns. For example, one of the games 1104 can correspondto an advertising campaign for a coffee house chain and another one ofthe games 1104 can correspond to an advertising campaign for anautomobile maker. In this example, the games 1104 can have the same ordifferent formats.

Each of the games 1104 is associated with one or more videos 1120, oneor more discovery resources 1122, and one or more control resources1124. In the example of FIG. 11, the reference numbers of the videos1120, the discovery resources 1122, and the control resources 1124 havealphabetical suffixes that correspond to the alphabetical suffixes ofthe reference numbers of their associated games.

Within each of the games 1104, the users 106 search for hidden artifactsin the videos 1120 of the game. For example, the users 106 who play thegame 1104A search for hidden artifacts in the videos 1120 associatedwith the game 1104A. The discovery resources 1122 of the games 1104correspond to hidden artifacts in the videos 1120 of the games 1104. Thediscovery resources 1122 specify discovery operations. The serverapplication 208 performs the discovery operations of the discoveryresources 1122 when the users 106 find the corresponding hiddenartifacts in the videos 1120. For example, the server application 208can award points to the users 106 when the users 106 find thecorresponding hidden artifacts in the videos 1120. The control resources1124 specify pre-playback operations and post-playback operations. Theserver application 208 performs the pre-playback operations of thecontrol resources 1124 before presenting the videos 1120. The serverapplication 208 performs the post-playback operations of the controlresources 1124 after presenting the videos 1120.

Each of the profiles 1108 corresponds to a different one of the users106. Each of the profiles 1108 stores data regarding the correspondinguser. For example, each of the profiles 1108 can store a point total forthe corresponding user. In another example, the profiles 1108 can storedemographic information, contact information, payment card information,social networking service connectivity information, and/or otherinformation about the corresponding users.

In some embodiments, the profiles 1108 also include information aboutthe habits of the corresponding users. For example, a given one of theprofiles 1108 can correspond to a given user. In this example, the givenprofile can include information that indicates which ones of the videos1120 the given user has watched, what time of day the given user watchedthe videos 1120, what types of prizes the given user tends to play for,what types of prizes the given user tends to win, what other users 106of the media distribution system 100 the given user interacts with, whatcoupons the given user has downloaded, what products the given user haspurchased using points, and/or other information about the habits of thegiven user. Thus, the profiles 1108 can be used to track viewing habitsof the users 106.

Various embodiments implement the profiles 1108 in various ways. Forexample, the profiles 1108 can comprise XML documents, database records,flat files, or other types of data structures.

The notification system 1100 provides notification messages to the users106. In various embodiments, the notification messages can have variousformats and contain various messages. For example, the notificationsystem 1100 can provide SMS text messages to the users 106 alerting theusers 106 that one of the games 1104 is starting. In another example,the notification system 1100 can provide email messages to the users 106alerting the users 106 about the availability of new games.

FIG. 12 is a flowchart illustrating an example operation 1200 performedby the distribution entity 110. After the operation 1200 starts, thedistribution entity 110 enters an advertising agreement with one of theadvertisers 112 (1202). In some embodiments, the advertising agreementobligates the distribution entity 110 to provide a new game thatinvolves finding hidden artifacts in videos. For ease of explanation,the following discussion uses the reference number 1104A to refer to thenew game.

After receiving entering the advertising agreement, the distributionentity 110 stores the one or more videos 1120A associated with the game1104A (1204). The videos 1120A include hidden artifacts andadvertisements. In some instances, the hidden artifacts areadvertisements. In other instances, the hidden artifacts are notadvertisements per se. In such instances, the videos 1120A can containadvertisements separate from the hidden artifacts.

In some instances, the distribution entity 110 modifies the videos 1120Ato include the hidden artifacts and/or the advertisements. In otherinstances, the original versions of the videos 1120A already contain theadvertisements and/or the hidden artifacts. In such instances, it maynot be necessary for the distribution entity 110 to modify the videos1120A to include the advertisements and/or the hidden artifacts.

Furthermore, after the distribution entity 110 enters the advertisingagreement, the distribution entity 110 develops the discovery resources1122A of the game 1104A (1206). Each of the discovery resources 1122Acorresponds to a different hidden artifact. Each of the discoveryresources 1122A specifies a discovery operation. The discovery operationof a discovery resource is performed when a user finds the hiddenresource that corresponds to the discovery resource. For example, thediscovery operation can increase a user's point total when the userselects a region of a video containing a corresponding hidden artifact.

In various embodiments, the distribution entity 110 develops thediscovery resources 1122A of the new game in various ways. For example,the distribution entity 110 can develop the discovery resources 1122Ausing an object-oriented programming language. Example object-orientedprogramming languages include C++, Java, C#, Python, Ruby, and so on. Inthis example, the discovery resources 1122A can be software objectshaving a same software interface. The software interface comprises apredefined collection of methods and attributes that other softwarecomponents, such as the server application 208, can use to interact withthe discovery resources 1122A. In this example, the discovery resources1122A can be pluggable because each of the discovery resources 1122A hasthe same software interface.

In another example, the distribution entity 110 can develop thediscovery resources 1122A as sets of scripts in various scriptinglanguages. Example scripting languages include JavaScript, Perl, XUL,and so on.

In yet another example, the distribution entity 110 can develop thediscovery resources 1122A using markup languages. For example, each ofthe discovery resources 1122A can comprise an XML document. In thisexample, the XML documents can specify parameters that control whichdiscovery operations the server application 208 performs.

Furthermore, the distribution entity 110 can develop the controlresources 1124A for the game 1104A (1208). As described in greaterdetail elsewhere in this document, the control resources 1124A providepre-playback and post-playback actions associated with the game 1104A.The pre-playback actions are actions associated with the game 1104A thatare performed prior to the users 106 playing back the videos 1120Aassociated with the game 1104A. The post-playback actions are actionsassociated with the game 1104A that are performed after the users 106have finished playing back the videos 1120A associated with the game1104A.

In various embodiments, the distribution entity 110 can develop thecontrol resources 1124A for the game 1104A in various ways. For example,the distribution entity 110 can develop the control resources 1124Ausing object-oriented programming languages, markup languages, or othertypes of languages.

After storing the videos 1120A, developing the discovery resources1122A, developing the control resources 1124A, the distribution entity110 distributes the game 1104A (1210). In various embodiments, thedistribution entity 110 distributes the game 1104A in various ways. Forinstance, in some example embodiments, the distribution entity 110distributes the game 1104A by making the videos 1120A, the discoveryresources 1122A, and the control resources 1124A available for downloadfrom the server computing device 102. In some such embodiments, theclient devices 104 can download video files corresponding to the videos1120A. In other such embodiments, the server application 208 can streamthe videos 1120A to the client devices 104. Furthermore, in thisexample, the client devices 104 can download the discovery resources1122A and/or the control resources 1124A and perform the operationsspecified by the discovery resources 1122A and/or the control resources1124A. Alternatively, in this example, the client devices 104 canrequest the server application 208 perform parts or all of theoperations specified by the discovery resources 1122A and/or the controlresources 1124A.

In other example embodiments, the distribution entity 110 distributesthe game 1104A by manufacturing and distributing physicalcomputer-readable storage media. In this example, the computer-readablestorage media store the videos 1120A. In some such embodiments, thecomputer-readable storage media also store the discovery resources 1122Aand/or the control resources 1124A. In such embodiments, the clientdevices 104 perform the operations specified by the discovery resources1122A and/or the control resources 1124A. In other such embodiments, theclient devices 104 send messages to the server application 208 thatcomprise requests for the server application 208 to perform some or allthe operations specified by the discovery resources 1122A and/or thecontrol resources 1124A.

FIG. 13 is a flowchart of an example operation 1300 performed by theserver application 208. The example operation 1300 is explained withreference to the client device 104A and the user 106A. Readers willappreciate that the operation 1300 can be applicable to other ones ofthe client devices 104 and users 106.

After the operation 1300 starts, the server application 208 receives amessage from the client device 104A (1302). In various embodiments, themessage can conform to various communication protocols. For example, therequest can conform to the HTTP protocol, a propriety protocol, oranother type of communication protocol. After the server application 208receives the message, the server application 208 performs differentactions depending on the content of the message.

If the message comprises a request to access a given one of the profilecreation resources 1106 (“YES” of 1304), the server application 208processes the given profile creation resource (1306). Processing theprofile creation resource causes the server application 208 to establisha profile 1108 of the user 106A. In various embodiments, the profilecreation resources 1306 are implemented in various ways. For example,one or more of the profile creation resources 1306 can comprise scripts.In such example, the scripts may be written in various interpretedprogramming languages, such as JavaScript, Perl, PHP, Ruby, and so on.In other instances, the profile creation resources 1306 can comprise ascompiled programs written in programming languages such as C++, Java,Basic, and so on. The server application 208 persists the profile 1108during times when the videos 1120 are not being presented to the user106A.

In some embodiments, the server application 208 collects personal dataabout the user 106A when the server application 208 establishes theprofile 1108 for the user 106A. For example, the server application 208can collect name information, contact information, payment cardinformation, information regarding the interests and tastes of the user106A, demographic information, and/or other information about the user106A. In such embodiments, the server application 208 adds such personaldata to the profile 1108 of the user 106A. In some embodiments, thepersonal data can be used to generate a marketing profile of the user106A. The marketing profile of the user 106A can be useful in marketingproducts to the user 106A and other people with similar characteristics.

Otherwise, if the message comprises a request to access one of theprofile pages (“YES” of 1308), the server application 208 sends theprofile page data to the client device 104A (1310). The profile pagedata represents a profile page 1110 of the user 106A. In someembodiments, the profile pages 1110 are webpages that contain dataspecific to the users 106. For example, the profile pages 1110 caninclude a total number of points earned by the users 106. In anotherexample, the profile pages 1110 can include lists of games played by theusers 106 and the numbers of points earned in the games. In yet anotherexample, the profile pages 1110 can include links to games that might beinteresting to the users 106. In yet another example, the profile pages1110 can include data indicating what games have been played by peopleconnected to the users 106 in social networking services, such asFacebook. In this example, the profile pages 1110 also include dataindicating what rewards have been won by people connected to the users106 in the social networking services. In yet another example, theprofile pages 1110 can include lists of coupons available to the users106 and lists of coupons redeemed by the users 106.

If the message comprises a request to access the rewards catalog 1116(1312), the server application 208 sends rewards catalog data to theclient device 104A (1314). The rewards catalog data represents therewards catalog 1116. The rewards catalog 1116 comprises a list ofrewards that the users 106 can get by redeeming points accumulated byplaying the games 1104. For example, the rewards catalog 1116 caninclude a gift certificate that the users 106 can obtain by redeemingfifty points.

The rewards catalog 1116 can include a variety of rewards. For example,the rewards catalog 1116 can include gift certificates, coupons, raffletickets, contest entries, physical prizes, cash, tickets, VIP access tovarious locations, access to special features of videos or games,travel, clues or hints regarding the locations of hidden artifacts inthe videos 1120 or the real world, and other resources.

In some embodiments, the rewards in the rewards catalog 1116 are tied toadvertising campaigns. For example, the rewards catalog 1116 includesitems associated with products being marketed by the advertisers 112. Inthis example, if one of the advertisers 112 is running an advertisingcampaign for a particular store, the rewards catalog 1116 can includegift certificates redeemable at the particular store. In anotherexample, the rewards catalog 1116 can include promotional itemsassociated with an advertising campaign.

If the message comprises a request to access one of the point redemptionresources 1118 (“YES” of 1316), the server application 208 processes thepoint redemption resource (1318). When the server application 208processes one of the point redemption resources 1118 in response to themessage from the user 106A, the server application 208 reduces a givennumber of points from the point total of the user 106A and performs oneor more actions to provide the reward associated with the given pointredemption resource to the user 106A.

The server application 208 can provide different rewards to the user106A depending on whether the point total of the user 106A exceedsvarious thresholds. For example, if the point total of the user 106Aexceeds a first threshold (e.g., 100 points), the server application 208can provide a first reward to the user 106A (e.g., a $10 gift card). Inanother example, if the point total of the user 106A exceeds a secondthreshold (e.g., 200 points), the server application 208 can provide asecond reward to the user (e.g., a $20 gift card).

As discussed above, the resource library 1102 comprises a set of coupons1112. Each of the coupons 1112 entitles the holder to something, such asa discount or gift. For example, one of the coupons 1112 can entitle aholder to receive $5 off the purchase price of a particular item. If themessage comprises a request to access one of the coupons 1112 (“YES” of1320), the server application 208 sends coupon data to the client device104A (1322). The coupon data represents the coupon.

In some embodiments, applications are installed on mobile devices usedby the users 106. When one of the users 106 wants to use one of his orher coupons when purchasing a product, the user launches the applicationand uses the application to retrieve the coupon. After the applicationretrieves the coupon, the application displays the coupon. In someinstances, a sales clerk can scan the coupon displayed by theapplication to redeem the coupon. In other instances, the applicationcan print the coupon.

As discussed above, the resource library 1102 comprises a set of couponredemption resources 1114. Each of the coupon redemption resources 1114corresponds to a different one of the coupons 1112. If the messagecomprises a request to access one of the coupon redemption resources1114 (“YES” of 1324), the server application 208 performs a couponredemption process specified by the coupon redemption resource (1326).Various coupon redemption resources can specify various couponredemption processes. For example, some coupon redemption resourcesspecify coupon redemption processes that involve updating the profile1108 of the user 106A to indicate that the user 106A has redeemed one ofthe coupons 1112. In another example, some coupon redemption resourcescan specify coupon redemption processes that increase the point total ofthe user 106A. In this example, some such coupon redemption processescan selectively increase the point total of the user 106A depending onwhether the user 106A redeemed the coupon before certain events occur.Such events can include calendar dates, number of days, redemption byother users of the coupon, and so on.

In some embodiments, the server application 208 receives messages thatcomprise requests to access the coupon redemption resources 1114 frommobile devices. For example, an application can be installed on a mobiledevice. In this example, one of the users 106 can present one of thecoupons 1112 to a clerk when the user wants to purchase a productassociated with the coupon. In this example, the clerk launches theapplication and uses the application to capture a photograph of thecoupon. The application then sends a request to access the couponredemption resource associated with the coupon.

When the server application 208 establishes the profiles 1008 for theusers 106, the server application 208 establishes personal coupon booksfor the users 106. A user's personal coupon book lists coupons that theuser has earned by playing the games 1104. If the message comprises arequest to view a personal coupon book (“YES” of 1328), the serverapplication 208 sends coupon book data to the client device 104A (1330).The coupon book data contains data indicating coupons in the personalcoupon book of the user 106A. For example, the coupon book data cancomprise HTML data for a webpage that lists coupons that the user 106Ahas earned by playing the games 1104.

In some embodiments, coupons in the personal coupon books are organizedby category. For example, the personal coupon books can contain a firstsection, a second section, and a third section. In this example, thefirst section lists coupons for groceries, the second section listscoupons for electronics, and the third section lists coupons forappliances. In this way, the users 106 can efficiently review thecoupons they have earned by playing the games 1104.

If the message comprises a request to access one of the videos 1120(“YES” of 1332), the server application 208 performs a portion of theoperation 1300 illustrated in FIG. 14. In other embodiments, the serverapplication 208 does not receive request to access the videos 1120. Forexample, if the distribution entity 110 distributes the games 1104 incomputer-readable storage media, it may be unnecessary for the clientdevices 104 to send requests to the server application 208 to access thevideos 1120.

FIG. 14 is a flowchart illustrating a continuation of the operation1300. As illustrated in the example of FIG. 13, the server application208 determines whether the message comprises a request to access a givenone of the videos 1120 associated with a given one of the games (1332).For ease of explanation, the following discussion assumes that themessage comprises a request to access a given one of the videos 1120A ofthe game 1104A.

In various embodiments, the server application 208 can receive therequest to access the given video in various ways. For example, theprofile pages 1110 can include links the videos associated with one ormore games. In this example, the server application 208 receives therequest to access the given video when the users 106 select one of theselinks. In another example, the server application 208 presents a webpageassociated with the game 1104A to the user 106A. In this example, thewebpage of the game 1104A includes links to the videos 1120A associatedwith the game 1104A. In this example, the server application 208receives the request to access the given video when the user 106A selectone of these links.

As briefly described above, the control resources 1124A specifypre-playback operations. The server application 208 performs thespecified pre-playback actions before the server application 208 beginsstreaming the videos 1120A to the client device 104A. After receivingthe request to access the given video, the server application 208performs the pre-playback operation specified by the control resources1124A of the game 1104A (1400).

Various control resources can specify various pre-playback operations.For example, the pre-playback operation specified by the controlresources 1124A of the game 1104A can store data to the profile 1108 ofthe user 106A indicating that the user 106A has watched at least some ofthe given video. In this way, the server application 208 can build updata regarding what types of videos the user 106A likes to watch, whattypes of games, and or what types of prizes interest the user 106A. Inthis way, the server application 208 can track the viewing habits of theuser 106A.

In another example, in another example the pre-playback operation canpresent game instructions to the user 106A. For instance, if the game1104A is a tournament style game, the pre-playback operation candescribe how to advance to later rounds.

In yet another example, the pre-playback operation presents a list ofhidden artifacts to the user 106A. This list of hidden artifactscontains images of artifacts hidden in the given video. The serverapplication 208 does not indicate to the user 106A where the hiddenartifacts are located within the given video.

In various embodiments, the server application 208 presents the list ofhidden artifacts to the user 106A in various ways. For example, theserver application 208 can present the list of hidden artifacts to theuser 106A in a popup window that appears on a display screen of theclient device 104A.

FIG. 15 illustrates an example playback interface 1500. The playbackinterface 1500 contains a video pane 1501 and a hidden artifact pane1502 and a video pane 1501. The video pane 1501 displays a video. Thehidden artifact pane 1502 contains a list of hidden artifacts 1504. Asillustrated in the example of FIG. 15, the hidden artifact pane 1502also specifies how many points the given user can earn by finding thehidden artifacts 1504.

In some embodiments, the appearances of the hidden artifacts 1504 changeafter the hidden artifacts 1504 have appeared in the videos 1120 withoutbeing selected. For example, the hidden artifacts 1504 can disappear orchange color after the hidden artifacts have appeared in the videos 1120without being selected. In this way, the users 106 can know to stoplooking for the hidden artifacts 1504.

The control resources 1124 of different games can specify differentpre-playback operations. For example, the control resources 1124A canspecify a pre-playback operation that presents the rules of a tournamentstyle game and the control resources 1124N can specify a pre-playbackoperation that presents the rules of a race-to-the-finish style game.

Continuing reference is now made to the example of FIG. 14. After theserver application 208 performs the pre-playback actions, the serverapplication 208 begins streaming the given video to the client device104A (1402). In various embodiments, the client device 104A can presentthe given video in various ways. For instance, in the example of FIG.15, the playback interface 1500 contains a video pane 1501 that presentsthe given video. Thus, in the example of FIG. 15, the user 106A is ableto see the given video and the hidden artifact pane 1502 simultaneously.In other embodiments, the client device 104A presents the given video inother windows or interfaces.

After the server application 208 begins streaming the given video to theclient device 104A, the server application 208 determines whether theuser 106A has finished watching the given video (1404). In variousembodiments, the server application 208 can determine whether the user106A has finished watching the given video in various ways. For example,the server application 208 can determine that the user 106A has finishedwatching the given video when the server application 208 receives anindication from the client device 104A that the client device 104A hasdisplayed a last frame of the given video. In another example, theserver application 208 can determine that the user 106A has finishedwatching the given video when the server application 208 receives anindication from the client device 104A that the client device 104A hasreceived input from the user 106A to stop playback of the given video.

If the user 106A has not yet finished watching the given video (“NO” of1404), the server application 208 can receive a selection of a hiddenartifact in the given video (1406). In response to receiving theselection of the hidden artifact, the server application 208 performs adiscovery operation of a corresponding discovery resource (1408). Thecorresponding discovery resources is the one of the discovery resources1122A that corresponds to the hidden artifact.

Various ones of the discovery resources 1122 have various discoveryoperations. For example, a discovery operation can add the given numberof points to the point total of the user 106A. In this example, thediscovery operations of discovery resources corresponding to differenthidden artifacts can add different numbers of points the point total ofthe user 106A. For instance, the discovery operation can add twentypoints to the user's point total when the user 106A finds a first hiddenartifact and can add fifty points to the user's point total when theuser 106A finds a second hidden artifact.

In another example, a discovery operation can update the hidden artifactpane 1502 (FIG. 15). In this example, the discovery operation can updatethe hidden artifact pane 1502 in various ways. For example, thediscovery operation can update the hidden artifact pane 1502 to removethe selected hidden artifact from the hidden artifact pane 1502. Inanother example, the discovery operation can update the hidden artifactpane 1502 to indicate that the selected hidden artifact has already beenfound.

In yet another example, a discovery operation enables the user 106A toaccess one of the coupons 1112. For instance, the coupons 1112 caninclude a $5 coupon for a given product. The user 106A earns a right touse this coupon by finding the hidden artifact.

In yet another example, the discovery operation can update the hiddenartifact pane 1502 to include a link to a given one of the coupons 1112.In this example, the user 106A can click on this link to download thegiven coupon. The discovery operation also updates the profile 1008 ofthe user 106A to indicate that the user 106A has earned the givencoupon. Furthermore, in this example, the discovery operation can updatea savings feature 1508 in the playback interface 1500. The savingsfeature 1508 indicates a total value of the coupons earned by the user106A by playing the game 1104A. For example, if the user 106A finds afirst hidden artifact and earns a coupon worth $5 and then finds asecond hidden artifact and earns a coupon with $10, the savings feature1508 indicates a total value of $15.

In yet another example, the game 1104A can, in addition to findinghidden artifacts in the videos 1120A, involve finding physical objectshidden in the real world. For example, the game 1104A may be part of anadvertising campaign for a coffee house chain. In this example, physicalobjects are hidden in particular locations of the coffee house chain.The physical objects can have computer-readable indicia, such as barcodes or two-dimensional matrix bar codes. The users 106 can takephotographs of the computer-readable indicia on the physical objectswith cameras on their mobile devices. When the users 106 upload thephotographs to the server application 208, the server application 208performs the discovery operation of the discovery resource thatcorresponds to the physical object. For example, the server application208 can increase a point total of the user 106A.

Many other discovery operations are possible. For example, a discoveryoperation can present a hint or clue to the user 106A when the user 106Aselects a particular combination of one or more of the hidden artifacts.The hint or clue provides some information about the location of one ormore other hidden artifacts in the videos 1120. In another example, thediscovery operation can update the profile 1008 of the user 106A toindicate that the user 106A found the hidden artifact. In yet anotherexample, a discovery operation enters the user 106A in a drawing orraffle when the user 106A finds the hidden artifact.

After performing the discovery operation of the discovery resourcecorresponding to the selected hidden artifact, the server application208 continues streaming the given video to the client device 104A(1410). Subsequently, the server application 208 can determine againwhether the user 106A has finished watching the given video (1404).

If the user 106A has finished watching the given video (“YES” of 1404),the server application 208 performs a post-playback operation of thecontrol resources 1124A of the game 1104A (1406).

The control resources 1124 for different games can specify differentpost-playback operations. For example, the given game can have therace-to-the-finish format. As mentioned above, users win games havingthe race-to-the-finish format by finding hidden artifacts in the videos1120 of the games before other users do. In this example, thepost-playback operation determines whether the user 106A has found allthe hidden artifacts before any other user. If the user 106A has foundall the hidden artifacts before any other user, the post-playbackoperation provides some resource to the user 106A. For example, thepost-playback operation can enter the user 106A in a drawing for aprize.

In another example, the game 1104A can have the tournament format. Asmentioned above, tournament games have multiple rounds. Users advance tolater rounds by finding hidden artifacts in the videos 1120. Users whoare unable to find the hidden artifacts are unable to advance to laterrounds. In this example, the post-playback operation can present a userinterface indicating whether the user 106A is allowed to access a nextround of the game 1104A and update the profile 1008 for the user 106Aaccordingly.

In yet another example, the user 106A accrues points by finding hiddenartifacts in the videos 1120A of the game 1104A. In this example, thepost-playback operation determines how many points the user 106A accruedduring the game 1104A. If the post-playback operation determines thatthe total points of the user 106A exceeds one or more thresholds, thepost-playback can provide various rewards to the user 106A. For example,if the point total of the user 106A exceeds a first threshold (e.g.,fifty points), the post-playback operation updates the profile 1008 ofthe user 106A to indicate that the user 106A has earned a coupon worth$10. In this example, if the point total of the user 106A exceeds asecond threshold (e.g., seventy points), the post-playback operationupdates the profile 1008 of the user 106A to indicate that the user 106Ahas earned a coupon worth $20.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. A method of advertising, the method comprising: presenting one ormore videos to a user, the one or more videos containing a plurality ofhidden artifacts, the one or more videos containing advertisements;receiving a plurality of selection inputs from the user, the selectioninputs indicating locations in the one or more videos that correspond toa plurality of selected artifacts, the selected artifacts being amongthe hidden artifacts; and performing, by a computing system, differentactions depending on which ones of the hidden artifacts are among theplurality of selected artifacts.
 2. The method of claim 1, wherein themethod further comprises: increasing a point total for the user inresponse to receiving one or more of the selection inputs; and whereinperforming different actions comprises: providing a given reward to theuser after the user's point total exceeds a given threshold.
 3. Themethod of claim 2, further comprising: after providing the given rewardto the user, reducing the user's point total.
 4. The method of claim 2,wherein the method further comprises: presenting a rewards catalog tothe user, the rewards catalog listing a plurality of rewards; andreceiving, from the user, a selection in the rewards catalog of thegiven reward; and wherein providing the given reward to the usercomprises providing the given reward to the user in response toreceiving the selection in the rewards catalog of the given reward. 5.The method of claim 2, further comprising: establishing a profile forthe user, the profile associated with the user's point total, theprofile persisting during times when the one or more videos are notbeing presented to the user.
 6. The method of claim 5, whereinestablishing the account comprises: collecting demographic dataregarding the user; and tracking viewing habits of the user.
 7. Themethod of claim 1, wherein performing different actions comprises:entering the user in a drawing for a prize.
 8. The method of claim 1,wherein performing different actions comprises: providing a coupon tothe user.
 9. The method of claim 8, further comprising: receiving arequest to redeem the coupon; and storing data that indicates that theuser redeemed the coupon.
 10. The method of claim 8, further comprising:presenting to the user a savings features that indicates a total valueof coupons associated with the selected artifacts.
 11. The method ofclaim 1, further comprising: presenting to the user an image of a givenhidden artifact while a given video is being presented to the user, thegiven hidden artifact being among the plurality of hidden artifacts, thegiven video being among the one or more videos, an appearance of theimage of the given hidden artifact changing after the given hiddenartifact has appeared in the given video without being selected.
 12. Themethod of claim 1, wherein the one or more videos include a given video;and wherein the method further comprises modifying the given video toinclude one or more of the hidden artifacts.
 13. A computing system thatcomprises: a data storage system that stores instructions; and aprocessing unit that reads and executes the instructions, execution ofthe instructions by the computing system configuring the computingsystem to: stream one or more videos to a client device, the one or morevideos containing a plurality of hidden artifacts, the one or morevideos containing advertisements; receive a plurality of selectioninputs from the client device, the selection inputs indicating locationsin the one or more videos that correspond selected artifacts, theselected artifacts being among the hidden artifacts; provide differentrewards to a user depending on which ones of the hidden artifacts areamong the selected artifacts.
 14. The computing system of claim 13,wherein the one or more videos include a given video; and whereinexecution of the instructions further configures the computing system tomodify the given video to include one or more of the advertisements. 15.The computing system of claim 13, wherein execution of the instructionsfurther configures the computing system to provide a clue to the userwhen the selected artifacts indicates a particular combination of one ormore of the hidden artifacts, the clue providing information regarding alocation of one of the hidden artifacts.
 16. The computing system ofclaim 13, wherein execution of the instructions configures the computingsystem to provide the user with an opportunity to participate in a nextround of a tournament when particular ones of the hidden artifacts areamong the selected artifacts.
 17. The computing system of claim 14,wherein execution of the instructions further configures the computingsystem to: increase a point total for the user in response to receivingeach of the selection inputs; enable the user to claim a first rewardafter the user's point total exceeds a first threshold; and enable theuser to claim a second reward after the user's point total exceeds asecond threshold.
 18. The computing system of claim 14, where executionof the instructions further configures the computing system to: receive,from the user, a photograph of a physical object; and increase theuser's point total in response receiving the photograph.
 19. Acomputer-readable data storage medium that stores instructions,execution of the instructions by a processing unit of a computing systemconfiguring the computing system to: stream a video to a client device,the video containing a plurality of hidden artifacts, the one or morevideos containing advertisements; receive a plurality of selectioninputs from the client device, the selection inputs indicating locationsin the video that correspond selected artifacts, the selected artifactsbeing among the hidden artifacts; provide a first reward to a user whenthe selected artifacts include a first combination of the hiddenartifacts; and provide a second reward to the user when the selectedartifacts include a second combination of the hidden artifacts.
 20. Thecomputer-readable data storage medium of claim 19, wherein execution ofthe instructions configures the computing system to: provide a coupon tothe user after receiving selection input indicating locations in the oneor more videos corresponding to one or more of the hidden artifacts; andreceive, from a mobile computing device, a request to redeem the coupon.